// map.js
import qqmapsdk from '../../../utils/qqmapsdk.js'

Page({
  data: {
    // 经度
    latitude: 40.060539,
    // 纬度
    longitude: 116.343847,
    // 缩放级别
    scale:16,
    // 路径
    polyline:[],
    // 标记点（数组）
    markers:[
      {
        id:1,
        latitude: 40.060539,
        longitude: 116.343847,
        width:30,
        height:40,
      },
      {
        id:2,
        latitude: 40.061539,
        longitude: 116.341847,
        iconPath:'../../../static/images/marker.png',
        width:40,
        height:40,
      }
    ],
    // 维修详情
    detail:{}
  },
  // 页面加载
  onLoad(query){
    // 根据报修id获取报修详情
    console.log('此报修信息',query);
    this.id = query.id
    this.getDetail(query.id)
    this.getPolyLine()
  },
  // 获取路线
  getPolyLine(){
    // console.log('获取路线');
    qqmapsdk.direction({
      mode:'bicycling', //骑行
      from:{latitude: 40.060539,longitude: 116.343847},
      to:{latitude: 40.061539,longitude: 116.341847},
      success:(res)=>{
        console.log('路线信息',res);
        // 提取压缩的路径坐标
        const coors=res.result.routes[0].polyline
        for (let i = 2; i < coors.length ; i++) {
          coors[i] = coors[i-2] + coors[i]/1000000
        }
        console.log('解压的坐标信息',coors)
        //将解压后的坐标放入点串数组pl中
        const points =[]
        for (var i = 0; i < coors.length; i += 2) {
          points.push({ latitude: coors[i], longitude: coors[i + 1] })
        }
        console.log('points',points)
        //设置polyline属性，将路线显示出来,将解压坐标第一个数据作为起点
        this.setData({
          latitude:points[0].latitude,
          longitude:points[0].longitude,
          polyline: [{
            points: points,
            color: '#00d26a',
            width: 4
          }]
        })
      },
      fail:(error)=>{
        console.error('失败信息',error);
      },
    })
  },
  // 获取报修详情
  async getDetail(id){
    const res = await wx.http.get(`/repair/${id}`)
    console.log('报修详情',res);
    this.setData({
      detail:res.data
    })
  },
  // 取消报修
  async cancelRepair(ev){
    if (ev.mark.status === 1) {
      const res = await wx.http.put(`/cancel/repaire/${this.id}`)
      wx.navigateBack()
    }else if (ev.mark.status === 2) {
      wx.utils.toast('正在上门中，无法取消')
    }else if (ev.mark.status === 0) {
      wx.utils.toast('订单已取消，请重新申请')
    }else {
      wx.utils.toast('系统出错，请稍后重试')
    }
    
  },
  // 修改信息
  editRepair(ev){
    console.log('ev',ev.mark);
    if (ev.mark.status === 1) {
      wx.navigateTo({
        url: '/repair_pkg/pages/form/index?id=' + this.id,
      })
    }else if (ev.mark.status === 2) {
      wx.utils.toast('正在上门中，信息无法更改')
    }else if (ev.mark.status === 0) {
      wx.utils.toast('订单已取消，请重新申请')
    }else {
      wx.utils.toast('系统出错，请稍后重试')
    }
  }
  
})
